package com.caocaog.market.finance.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.caocaog.market.finance.pay.vo.BillStatistics;
import com.caocaog.market.finance.pay.vo.WithdrawalsRecord;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * 账单统计Mapper
 *
 * @author chechen
 * @date 2022-10-21
 */
public interface BillStatisticsMapper extends BaseMapper<BillStatistics> {


    /**
     * 获取可提现金额list
     *
     * @param shopId 店铺id
     */
    List<BigDecimal> getCanBeWithdrawnAmounts(@Param("shopId") String shopId);


    /**
     * 获取待结算金额list
     *
     * @param shopId 店铺id
     */
    List<BigDecimal> getToBeSettledAmounts(@Param("shopId") String shopId);


    /**
     * 七天销售记录
     *
     * @param shopId 店铺id
     */
    List<BillStatistics> getSevenDaysSalesRecords(@Param("shopId") String shopId);


    /**
     * 全部销售记录
     *
     * @param page   分页信息
     * @param shopId 店铺id
     * @return 销售记录分页信息
     */
    IPage<BillStatistics> getSalesRecordPage(Page<BillStatistics> page, @Param("shopId") String shopId);


    /**
     * 已结算账单
     *
     * @param page   分页信息
     * @param shopId 店铺id
     * @return 已结算账单分页信息
     */
    IPage<BillStatistics> getInvoiceSettledPage(Page<BillStatistics> page, @Param("shopId") String shopId);


    /**
     * 待结算账单
     *
     * @param page   分页信息
     * @param shopId 店铺id
     * @return 待结算账单分页信息
     */
    IPage<BillStatistics> getPendingBillPage(Page<BillStatistics> page, @Param("shopId") String shopId);


    /**
     * 提现记录
     *
     * @param page   分页信息
     * @param shopId 店铺id
     * @return 销售记录分页信息
     */
    IPage<WithdrawalsRecord> getWithdrawalsRecordPage(Page<WithdrawalsRecord> page, @Param("shopId") String shopId);


}
